const LinkedList = require('./01-linked_es5');

// 定义链表的长度，这里需要测试奇数和偶数
const count = 10;

const linkedList = new LinkedList();
for (let i = 0; i < count; i++) {
  linkedList.push(i);
}

// 当count = 9 时，返回 {data: 4}
// 当count = 10 时，返回 {data: 5},符合"如果有两个中间结点，则返回第二个中间结点"
console.log(middleNode(linkedList));  

function middleNode(lk) {
  // 快慢指针
  let slow = lk.head;
  let fast = lk.head;
  // 慢指针每次走 1步，快指针每次走 2步；
  while (fast != null && fast.next != null) {
    slow = slow.next;
    fast = fast.next.next;
  }
  // 慢指针就是中间位置
  return slow;
}